#include "PowerUpInfo.h"
#include "Exception.h"
#include "Logger.h"

using namespace game_engine::data_format;
using namespace game_engine::utils;

///////////////////////////////////////////////////////////////////////////////
// Constructors and Destructors
///////////////////////////////////////////////////////////////////////////////

PowerUpInfo::PowerUpInfo(void)
	: textureFilename(), position()
{
}

PowerUpInfo::~PowerUpInfo(void)
{
}

///////////////////////////////////////////////////////////////////////////////
// Other public methods
///////////////////////////////////////////////////////////////////////////////

void PowerUpInfo::parse(XmlNode *node)
{
    // Get powerup's information
    try 
    {
        textureFilename = XmlUtils::getString("texture_file", node);
        string pos = XmlUtils::getString("position", node);
        position = Point(pos);
    } catch (exception &e)
    {
        string msg = "Parsing powerup information failed. ";
        msg.append(e.what());
        Logger::ERR(GAMEENGINE_LOG, msg);
        throw ParserException(msg);
    }
}

///////////////////////////////////////////////////////////////////////////////
// Getters
///////////////////////////////////////////////////////////////////////////////

const string& PowerUpInfo::getTextureFilename(void) const
{
    return textureFilename;
}

const Point& PowerUpInfo::getPosition(void) const
{
    return position;
}
